1. Field of the Invention
The present invention relates generally to GPS positioning systems. More specifically, the present invention relates to improved code phase and carrier acquisition in GPS positioning systems.
2. Introduction
The global positioning system (GPS) is employed to determine position in a multitude of applications. For example, in navigation applications, a user uses a GPS receiver to determine her instantaneous position as well as her position over time. Another use for GPS receivers tracking objects. For example, placing a GPS receiver in a truck allows tracking of the truck's movements. Attaching the receiver to cargo allows precise tracking of the locations of that cargo. These concepts can be extended to fleet management for common carriers and delivery management for delivery service providers. Numerous additional and new services are being deployed and developed for using the position-determining capabilities of GPS receivers.
FIG. 1 is a schematic diagram of a conventional GPS receiver 101 used for determining position. In FIG. 1, GPS receiver 101 is simplified to point out the primary relevant functions of a conventional GPS receiver. An antenna 102 receives a GPS signal from GPS satellites 103a, 103b, 103c and 103d. Antenna 102 applies the received GPS signal to a signal conditioning processor 104. Signal conditioning processor 104 amplifies, filters and downconverts the signal to baseband for processing. The baseband signal is applied to carrier and code phase tracking algorithms in processing block 106. Processing block 106 contains a multiplier 108, a correlator 110, a carrier frequency oscillator 112, a Gold code generator 114 and an integrator 116. Multiplier 108 multiplies the baseband signal by an estimated carrier frequency received from carrier frequency oscillator 112. Carrier frequency oscillator 112 can be a voltage controlled oscillator (VCO) or a numerically controlled oscillator (NCO). Correlator 110 correlates the signal with a replica of a Gold code generated by code generator 114. The Gold code is a unique and known code generated by each GPS satellite. The terms “code” and “Gold code” are used interchangeably herein. The output of correlator 110 is integrated in integrator 116. The output of integrator 116 is input to a digital signal processor 118 to generate information required for code tracking generator 114 and carrier frequency oscillator 112. This information includes carrier phase and code phase information.
The combination of carrier frequency oscillator 112, multiplier 108, integrator 116 and DSP 118 operates as a carrier tracking loop that compensates for errors in the down converter frequency reference as well as any Doppler shift associated with a particular satellite. The combination of code generator 114, correlator 110, integrator 116 and DSP 118 operates as a code tracking loop that compensates for any shift in the code phase of the received signal. Generally, there are a series of processing blocks 106 running in parallel in a conventional GPS receiver. Each of the series of processing blocks is tuned to a different GPS satellite. Generally, there are at least 2 processing blocks 106 per GPS satellite.
GPS receiver 101 performs operates in two modes to process a GPS signal. First, the receiver must acquire the GPS signal's carrier frequency and Gold code phase. This is known as the acquisition mode. Second, receiver 101 must track the carrier frequency and Gold code phase using the carrier frequency and Gold code phase determined in the acquisition phase as a starting point. This is known as the tracking mode.
During the acquisition mode, a GPS receiver uses a priori knowledge. For example, the receiver knows the nominal carrier frequency of the GPS signal. However, the nominal carrier frequency is not likely to be the one actually received by the receiver for several reasons. First, Doppler shift caused by the relative motion of the transmitting satellite and the receiver changes the received carrier frequency. Moreover, the local oscillator (not shown) introduces its own errors. Consequently, both the carrier frequency and offset of the Gold code (Gold code phase) must be determined.
To make these determinations, conventional GPS receivers generally perform a serial search by trying different combinations of carrier frequency and code phase until the output of integrator 116 exceeds a predetermined threshold, indicating that a match has been obtained. The search must be performed for each GPS satellite the receiver will use to determine position. Using multiple processing channels as described above, the GPS receiver can perform the searches in parallel.
FIG. 2 is a graphical representation of a search process performed by conventional GPS receiver 101 to determine carrier frequency and Gold code phase. Oscillator 112 is typically set to the nominal carrier frequency of the GPS signal. In addition, the code is generated by code generator 114 with an initial code phase. If the received carrier frequency and code phase match the carrier frequency generated by oscillator 112 and the code phase of the code generated by code generator 114 respectively, the output of integrator 116 is relatively high. On the other hand, if the carrier frequency or the code phase do not match, the output of integrator 116 is relatively low, and may be essentially noise.
Generally, a conventional search algorithm first sets a frequency and lets the Gold code phase vary. As the code phase varies, controller 118 measures the output of integrator 116. If the output of integrator 116 exceeds a pre-determined threshold, controller 118 presumes that lock has been achieved and controller 118 places the receiver in its tracking mode using the values determined by the search algorithm for carrier frequency and code phase. If the output of integrator 116 does not exceed the pre-determined threshold, controller 118 presumes that lock has not been achieved. Once all code phases (code phase cp1 through cpN) have been tried, controller 118 switches carrier frequency oscillator to output a carrier frequency f2. The process is repeated for each code phase cp1 through cpN, and each frequency frequency 1 through frequency M, unless controller 118 stops the process early because the output of integrator 116 indicates a lock condition. If no frequency code phase combination is found, the receiver cannot acquire the signal.
Conventional GPS receivers perform each step in the above process on a different part of the received signal. That is, at each step, a new portion of the GPS signal received by the receiver is processed. While conventional GPS receivers can sometimes acquire the GPS signal in a few seconds, in general acquisition is significantly longer.
After the acquisition mode, the receiver switches to a tracking mode. In the tracking mode, the receiver continually adjusts the frequency of oscillator 112 and the offset of the Gold code phase to maintain lock to the incoming carrier and code phase. Code phase tracking is typically assisted in a well-known manner using early and late code generators that generate early and late codes respectively (as well as a punctual code). If the received code correlates better with the early code, controller 118 reduces the phase delay of code generator 114. If the received code correlates better with the late code, code generator increases the phase of code generator 114. No change is made if the received code correlates best with the punctual code.
Carrier tracking is typically accomplished by analyzing the phase of the signal output by the integrator. If the carrier frequency generated by oscillator 112 matches the received carrier frequency, then there will be no phase rotation. If there is no such match, then controller 118 increases the frequency or decreases the frequency of oscillator 118 to compensate for any phase rotation.
In addition to tracking, the receiver can demodulate the 50 Hz data modulated on the carrier of the GPS signal. This 50 Hz signal carries information related to the particular satellite that transmitted the signal. For example, this signal contains ephemeris information that provides information on the position and motion of the GPS satellite.